/* 
 * File:   Utils.cpp
 * Author: filiagees
 * 
 * Created on March 10, 2013, 1:24 AM
 */

#include "config.h"
#include "Utils.h"

/*
Utils::Utils() {
}

Utils::Utils(const Utils& orig) {
}

Utils::~Utils() {
}
*/

//static 
/** Calcula uma cor randomica */
void Utils::rand_color(float *r, float *g, float *b, float *a){
    (*r) = rand_num(0,255)/255.0;
    (*g) = rand_num(0,255)/255.0;
    (*b) = rand_num(0,255)/255.0;
    (*a) = rand_num(0,255)/255.0;
};

//static 
/**
 * Retorna um inteiro randomico dentro do intervalo min~max, inclusivo.
 * Espera que srand() ja tenha sido chamada.
 */
int Utils::rand_num(int min, int max){
    int randNum;
    randNum = rand() % (max-min+1);     //< '+1' torna o intervalo inclusivo
    return min+randNum;
};

//static 
/** 
 * Gera coordenada randomica dentro do tamanho da janela OpenGL.
 * @warning 
 *      Talvez se torne um problema, uma figura grande ser desenhada muito à
 * direita, pois a janela vai cortá-la.
 */
void Utils::rand_coord(int *x, int *y){
    int ogl_width, ogl_height;
    
    ogl_height = glutGet(GLUT_WINDOW_HEIGHT);
    ogl_width = glutGet(GLUT_WINDOW_WIDTH);
    
    (*x) = rand_num(0, ogl_width);
    (*y) = rand_num(0, ogl_height);        
};

